package com.hyts.jgit.base.spi;

/**
 * project-name:coffice-toolbox
 * package-name:com.hyts.gitclient.base.spi
 * author:Libo/Alex
 * create-date:2019-06-14 21:12
 * copyright:libo-hyts-github
 * email:libo2dev@aliyun.com
 * description:此类主要用于: 远程服务器的基础操作
 */
public interface RemoteBaseSpi<P,R> {


    /**
     * 克隆服务clone
     * @param param
     * @return
     */
    R clone(P param);

    /**
     * 获取fetch服务数据文件
     * @param param
     * @return
     */
    R fetch(P param);

    /**
     * pull 拉取文件信息
     * @param param
     * @return
     */
    R pull(P param);

    /**
     * 提交push推送到服务器仓库
     * @param param
     * @return
     */
    R push(P param);

    /**
     * reset还原
     * @param param
     * @return
     */
    R reset(P param);

}
